package media;

import javafx.collections.ObservableMap;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import junit.framework.Test;

// 在Application中才能用(播放长音频,支持mp3,aiff,wav格式)
public class MediaPlayerDemo {
	private	static	String url;         // 本地音频或网络音频
	private	static	Media media;                
	private	static	MediaPlayer mp;     
		
	private MediaPlayerDemo() {
		
	}
	
	// 音乐播放
	public static void playMusic(String name) {
		// 在src目录下新建一个包 ,导入音乐文件;媒体源是一个url字符(此处为相对路径前加/)
		url = Test.class.getResource("/music/" + name).toString(); 
		media = new Media(url);   		// 获得媒体源
		mp = new MediaPlayer(media); 	// 控制和播放媒体源
		mp.setVolume(0.4);          // 设置当前音量(0到1,double，默认为1); mp.getVolume()获取当前音量
		mp.setAutoPlay(true);       // 自动播放
		mp.setCycleCount(MediaPlayer.INDEFINITE);
//		mp.play();
//		mp.pause();
//		mp.stop(); 
//		mp.seek()    设置播放时间
//		mp.dispose();   释放media资源
//		mp.getStatus() == MediaPlayer.Status.PLAYING	// 获取状态
		
//		// 有各种状态的监听
//		mp.setOnReady(new Runnable() {
//			
//			@Override
//			public void run() {
//				System.out.println(media.getDuration().toSeconds());	// 获得歌曲的总时间(注意准备好才能获取)
//				ObservableMap<String, Object> message = media.getMetadata();	// 获取歌曲信息
//				for(String key: message.keySet()) {
//					System.out.println(key + "  " + message.get(key));
//				}
//			}
//		});
//		mp.setOnPlaying(new Runnable() {
//			
//			@Override
//			public void run() {
//				System.out.println("run");
//			}
//		});
	}
}